// Header Protection
#ifndef _FILE_H_
#define _FILE_H_

// Include Files
#include <stdio.h>

/////////////////////////////////////////////////////////////////////////////////////
// This class is a wrapper around platform specific file systems which can be used
//     for file input and output.
// TODO: currently just a thin wrapper around windows + C "FILE"
class file_t
{
public:

	file_t() : m_pFile(CE_NULL) { }

	~file_t() { }

private:

	file_t( file_t const &_rRHS );

	file_t &operator =( file_t const &_rRHS );

public:

	bool_t Open( char_t const *_szFilename, char_t const *_szMode );

	void Close();

	void ReadLine( char_t *_szBuffer, uint_t _uLength );

	uint_t GetSize();

	uint_t Read( byte_t *_pBuffer, uint_t _uSize );

	uint32_t ReadUInt32();

private:

	FILE *m_pFile;
};

// Header Protection
#endif _FILE_H_
